package thread;

public class Demo10 {
    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
            //由于currentThread方法，是在t start 之后，才执行的，
            //并且currentThread是在t线程中执行的，所以在t线程中，执行currentThread方法，得到的是t线程的引用
            //而在main线程中执行currentThread方法，得到的是main线程的引用
            while (!Thread.currentThread().isInterrupted()) {
                System.out.println("hello thread");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    //会把sleep状态提前唤醒，就会抛出异常，这时就会把isIterrupted状态由true改为false
                    //e.printStackTrace();//打印异常
                    System.out.println(Thread.currentThread().isInterrupted());
                    //false 在catch中打印，是为了证明，异常会把isIterrupted状态由true改为false
                    //在break之前，也可以加一些别的程序，就像相当于dosomething();稍后结束
                   //break;//添加break,让线程终止
                }
            }
        });
        t.start();
        Thread.sleep(2000);
        t.interrupt();//在main线程中尝试让线程终止

    }
}
